<!--go to lines 187 and 188 to change program/application titlebar background color (at least for GTK 3.0) -->

<?xml version="1.0"?>
<metacity_theme>
<info>
  <name>ContrastHighInverseCyan</name>
  <author>Havoc Pennington &lt;hp@redhat.com&gt;</author>
  <copyright>&#194; Havoc Pennington, 2002</copyright>
  <date>February 3, 2002</date>
  <description>Simple low-overhead default theme that comes with Metacity.  Modified by Goat Avenger 2019</description>
</info>

<frame_geometry name="normal">
  <distance name="left_width" value="6"/>
  <distance name="right_width" value="6"/>
  <distance name="bottom_height" value="7"/>
  <distance name="left_titlebar_edge" value="6"/>
  <distance name="right_titlebar_edge" value="6"/>
  <aspect_ratio name="button" value="1.0"/>
  <distance name="title_vertical_pad" value="3"/>
  <border name="title_border" left="3" right="4" top="4" bottom="3"/>
  <border name="button_border" left="0" right="0" top="1" bottom="1"/>
</frame_geometry>

<!-- strip borders off the normal geometry -->
<frame_geometry name="normal_small_borders" parent="normal">
  <distance name="left_width" value="0"/>
  <distance name="right_width" value="0"/>
  <distance name="bottom_height" value="0"/>
  <distance name="left_titlebar_edge" value="0"/>
  <distance name="right_titlebar_edge" value="0"/>
</frame_geometry>

<frame_geometry name="utility" title_scale="xx-small">
  <distance name="left_width" value="3"/>
  <distance name="right_width" value="3"/>
  <distance name="bottom_height" value="4"/>
  <distance name="left_titlebar_edge" value="3"/>
  <distance name="right_titlebar_edge" value="3"/>
  <distance name="button_width" value="11"/>
  <distance name="button_height" value="11"/>
  <distance name="title_vertical_pad" value="1"/>
  <border name="title_border" left="3" right="4" top="3" bottom="3"/>
  <border name="button_border" left="0" right="0" top="1" bottom="1"/>
</frame_geometry>

<frame_geometry name="border" has_title="false">
  <distance name="left_width" value="4"/>
  <distance name="right_width" value="4"/>
  <distance name="bottom_height" value="4"/>
  <distance name="left_titlebar_edge" value="0"/>
  <distance name="right_titlebar_edge" value="0"/>
  <distance name="button_width" value="0"/>
  <distance name="button_height" value="0"/>
  <distance name="title_vertical_pad" value="4"/>
  <border name="title_border" left="0" right="0" top="0" bottom="0"/>
  <border name="button_border" left="0" right="0" top="0" bottom="0"/>
</frame_geometry>

<!-- define constants -->
<constant name="ArrowSpacer" value="8"/>
<constant name="MinArrowSize" value="7"/>
<constant name="ButtonIPad" value="6"/>
<constant name="ThickLineWidth" value="3"/>
<constant name="IconTitleSpacing" value="2"/>
<constant name="SpacerWidth" value="6"/>
<constant name="SpacerHeight" value="9"/>
<constant name="SpacerOffset" value="4"/>

<!-- Buttons -->

<draw_ops name="button_pressed_bg">
  <gtk_box state="active" shadow="in" x="0" y="0" width="width" height="height"/>
</draw_ops>

<draw_ops name="menu_button">
  <gtk_arrow state="normal" shadow="out" arrow="down"
             x="ArrowSpacer `min` (width-MinArrowSize)/2"
             y="ArrowSpacer `min` (height-MinArrowSize)/2"
             width="(width-(ArrowSpacer*2)) `max` MinArrowSize"
             height="(height-(ArrowSpacer*2)) `max` MinArrowSize"/>
</draw_ops>

<draw_ops name="menu_button_pressed">
  <include name="menu_button"/>
</draw_ops>

<draw_ops name="minimize_button">
  <line color="gtk:fg[NORMAL]"
        x1="ButtonIPad"
        y1="height - ButtonIPad - ThickLineWidth + 1"
        x2="width - ButtonIPad"
        y2="height - ButtonIPad - ThickLineWidth + 1"
        width="3"/> <!-- FIXME allow a constant here -->
</draw_ops>

<draw_ops name="minimize_button_pressed">
  <include name="minimize_button"/>
</draw_ops>

<draw_ops name="maximize_button">
  <rectangle color="gtk:fg[NORMAL]" filled="false"
             x="ButtonIPad" y="ButtonIPad" width="width-ButtonIPad*2-1" height="height-ButtonIPad*2-1"/>
  <line color="gtk:fg[NORMAL]" width="3"
        x1="ButtonIPad" y1="ButtonIPad+1" x2="width-ButtonIPad" y2="ButtonIPad+1"/>
</draw_ops>

<draw_ops name="maximize_button_pressed">
  <include name="maximize_button"/>
</draw_ops>

<draw_ops name="mini_window_icon">
  <rectangle color="gtk:bg[NORMAL]" filled="true"
             x="0" y="0" width="width-1" height="height-1"/>
  <rectangle color="gtk:fg[NORMAL]" filled="false"
             x="0" y="0" width="width-1" height="height-1"/>
  <line color="gtk:fg[NORMAL]" width="2"
        x1="0" y1="1" x2="width" y2="1"/>
</draw_ops>

<draw_ops name="restore_button">
  <include name="mini_window_icon" 
           x="ButtonIPad" y="ButtonIPad" 
           width="width - 5 - ButtonIPad"
           height="height - 5 - ButtonIPad"/>
  <include name="mini_window_icon" 
           x="3 + ButtonIPad" y="3 + ButtonIPad"
           width="width - 5 - ButtonIPad"
           height="height - 5 - ButtonIPad"/>
</draw_ops>

<draw_ops name="restore_button_pressed">
  <include name="restore_button"/>
</draw_ops>

<draw_ops name="close_button">
  <line color="gtk:fg[NORMAL]"
        x1="ButtonIPad" y1="ButtonIPad"
        x2="width - ButtonIPad - 1" y2="height - ButtonIPad - 1"
        width="1"/>
  <line color="gtk:fg[NORMAL]"
        x1="ButtonIPad" y1="height - ButtonIPad - 1"
        x2="width - ButtonIPad - 1" y2="ButtonIPad"
	width="1"/>
</draw_ops>

<draw_ops name="close_button_pressed">
  <include name="close_button"/>
</draw_ops>

<draw_ops name="outer_bevel">
  <rectangle color="gtk:fg[NORMAL]"
             x="0" y="0" width="width-1" height="height-1"/>
  <line color="gtk:light[NORMAL]"
        x1="1" y1="1" x2="1" y2="height-2"/>
  <line color="gtk:light[NORMAL]"
        x1="1" y1="1" x2="width-2" y2="1"/>
  <line color="gtk:dark[NORMAL]"
        x1="width-2" y1="1" x2="width-2" y2="height-2"/>
  <line color="gtk:dark[NORMAL]"
        x1="1" y1="height-2" x2="width-2" y2="height-2"/>        
</draw_ops>

<draw_ops name="blank">
<!-- nothing -->
</draw_ops>

<draw_ops name="focus_outline">
  <rectangle color="gtk:fg[NORMAL]"
             x="left_width-1" y="top_height-1"
             width="width-left_width-right_width+1"
             height="height-top_height-bottom_height+1"/>
</draw_ops>

<draw_ops name="focus_background">
  <include name="outer_bevel"/>
  <include name="focus_outline"/>
</draw_ops>

<draw_ops name="background_unfocused">
  <include name="outer_bevel"/>
  <include name="focus_outline"/>
</draw_ops>

<draw_ops name="title_gradient">
  <gradient type="diagonal" x="0" y="0" width="width-SpacerWidth" height="height">
    <color value="#00ffff"/>
    <color value="#00ffff"/>
  </gradient>
</draw_ops>

<draw_ops name="title_spacer">
  <gtk_vline state="normal" x="width+1-SpacerWidth/2"
	y1="SpacerOffset"
        y2="height - SpacerOffset"/>
</draw_ops>
	     
<draw_ops name="title_text_focused_with_icon">
  <clip x="0" y="0" width="width-SpacerWidth" height="height"/>
  <title color="#000000"
         x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing"
         y="((height - title_height) / 2) `max` 0"/>
  <icon  x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
         y="(height-mini_icon_height) / 2"
         width="mini_icon_width" height="mini_icon_height"/>
</draw_ops>

<draw_ops name="title_text_focused_no_icon">
  <clip x="0" y="0" width="width-SpacerWidth" height="height"/>
  <title color="gtk:fg[SELECTED]"
         x="(0 `max` (width-title_width)) / 2"
         y="((height - title_height) / 2) `max` 0"/>
</draw_ops>

<draw_ops name="title_text_with_icon">
  <clip x="0" y="0" width="width-SpacerWidth" height="height"/>
  <title color="gtk:fg[NORMAL]"
         x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing"
         y="((height - title_height) / 2) `max` 0"/>
  <icon  x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2"
         y="(height-mini_icon_height) / 2"
         width="mini_icon_width" height="mini_icon_height"/>
</draw_ops>

<draw_ops name="title_text_no_icon">
  <clip x="0" y="0" width="width-SpacerWidth" height="height"/>
  <title color="gtk:fg[NORMAL]"
         x="(0 `max` (width-title_width)) / 2"
         y="((height - title_height) / 2) `max` 0"/>
</draw_ops>

<draw_ops name="title_normal">
  <include name="title_spacer"/>
  <include name="title_text_with_icon"/>
</draw_ops>

<draw_ops name="title_focused">
  <include name="title_gradient"/>
  <include name="title_spacer"/>
  <include name="title_text_focused_with_icon"/>
</draw_ops>

<draw_ops name="title_utility">
  <include name="title_spacer"/>
  <include name="title_text_no_icon"/>
</draw_ops>

<draw_ops name="title_utility_focused">
  <include name="title_gradient"/>
  <include name="title_spacer"/>
  <include name="title_text_focused_no_icon"/>
</draw_ops>

<frame_style name="normal_unfocused" geometry="normal">
  <piece position="entire_background" draw_ops="background_unfocused"/>
  <piece position="title" draw_ops="title_normal"/>

  <!-- we don't specify for prelight, so normal is used -->
  <button function="left_left_background" state="pressed" draw_ops="button_pressed_bg"/>
  <button function="left_middle_background" state="pressed" draw_ops="button_pressed_bg"/>
  <button function="left_right_background" state="pressed" draw_ops="button_pressed_bg"/>
  <button function="right_left_background" state="pressed" draw_ops="button_pressed_bg"/>
  <button function="right_middle_background" state="pressed" draw_ops="button_pressed_bg"/>
  <button function="right_right_background" state="pressed" draw_ops="button_pressed_bg"/>

  <button function="close" state="normal" draw_ops="close_button"/>
  <button function="close" state="pressed" draw_ops="close_button_pressed"/>
  <button function="minimize" state="normal" draw_ops="minimize_button"/>
  <button function="minimize" state="pressed" draw_ops="minimize_button_pressed"/>
  <button function="maximize" state="normal" draw_ops="maximize_button"/>
  <button function="maximize" state="pressed" draw_ops="maximize_button_pressed"/>
  <button function="menu" state="normal" draw_ops="menu_button"/>
  <button function="menu" state="pressed" draw_ops="menu_button_pressed"/>
</frame_style>

<frame_style name="normal_focused" geometry="normal" parent="normal_unfocused">
  <piece position="entire_background" draw_ops="focus_background"/>
  <piece position="title" draw_ops="title_focused"/>
</frame_style>

<frame_style name="maximized_unfocused" geometry="normal_small_borders" parent="normal_unfocused">
  <piece position="entire_background" draw_ops="blank"/>
  <button function="maximize" state="normal" draw_ops="restore_button"/>
  <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
</frame_style>

<frame_style name="maximized_focused" geometry="normal_small_borders" parent="normal_focused">
  <piece position="entire_background" draw_ops="focus_outline"/>
  <button function="maximize" state="normal" draw_ops="restore_button"/>
  <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/>
</frame_style>

<frame_style name="utility_unfocused" geometry="utility" parent="normal_unfocused">
  <piece position="title" draw_ops="title_utility"/>
</frame_style>

<frame_style name="utility_focused" geometry="utility" parent="normal_focused">
  <piece position="title" draw_ops="title_utility_focused"/>
</frame_style>

<frame_style name="border" geometry="border" parent="normal_unfocused">
  <piece position="entire_background" draw_ops="outer_bevel"/>
  <piece position="title" draw_ops="blank"/>
</frame_style>

<frame_style_set name="normal">
<frame focus="yes" state="normal" resize="both" style="normal_focused"/>
<frame focus="no" state="normal" resize="both" style="normal_unfocused"/>
<frame focus="yes" state="maximized" style="maximized_focused"/>
<frame focus="no" state="maximized" style="maximized_unfocused"/>
<frame focus="yes" state="shaded" style="normal_focused"/>
<frame focus="no" state="shaded" style="normal_unfocused"/>
<frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/>
<frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/>
</frame_style_set>

<frame_style_set name="utility" parent="normal">
<frame focus="yes" state="normal" resize="both" style="utility_focused"/>
<frame focus="no" state="normal" resize="both" style="utility_unfocused"/>
<!-- this is a bunch of crack since utility windows shouldn't be maximized -->
<frame focus="yes" state="maximized" style="utility_focused"/>
<frame focus="no" state="maximized" style="utility_unfocused"/>
<frame focus="yes" state="shaded" style="utility_focused"/>
<frame focus="no" state="shaded" style="utility_unfocused"/>
<frame focus="yes" state="maximized_and_shaded" style="utility_focused"/>
<frame focus="no" state="maximized_and_shaded" style="utility_unfocused"/>
</frame_style_set>

<frame_style_set name="border">
<frame focus="yes" state="normal" resize="both" style="border"/>
<frame focus="no" state="normal" resize="both" style="border"/>
<frame focus="yes" state="maximized" style="border"/>
<frame focus="no" state="maximized" style="border"/>
<frame focus="yes" state="shaded" style="border"/>
<frame focus="no" state="shaded" style="border"/>
<frame focus="yes" state="maximized_and_shaded" style="border"/>
<frame focus="no" state="maximized_and_shaded" style="border"/>
</frame_style_set>

<window type="normal" style_set="normal"/>
<window type="dialog" style_set="normal"/>
<window type="modal_dialog" style_set="normal"/>
<window type="menu" style_set="normal"/>
<window type="utility" style_set="utility"/>
<window type="border" style_set="border"/>

<menu_icon function="close" state="normal" draw_ops="close_button"/>
<menu_icon function="maximize" state="normal" draw_ops="maximize_button"/>
<menu_icon function="unmaximize" state="normal" draw_ops="restore_button"/>
<menu_icon function="minimize" state="normal" draw_ops="minimize_button"/>

</metacity_theme>
